Revision: libselinux--debian--1.30--patch-3
Archive: srivasta@debian.org--etch
Creator: Manoj Srivastava <srivasta@debian.org>
Date: Thu Jul 20 01:10:41 CDT 2006
Standard-date: 2006-07-20 06:10:41 GMT
Modified-files: src/Makefile
New-patches: srivasta@debian.org--etch/libselinux--debian--1.30--patch-3
Summary: Do not pass -z defs to the linker, allowing compilation
Keywords: 

Well, libstdc++ is configured for a system which supports TLS (Thread
Local Storage).  That causes it to call __tls_get_addr in some cases.
This means that your libselinux1.so has a direct reference to
__tls_get_addr which needs to be satisfied.

Normally __tls_get_addr is defined by the dynamic linker itself.  When
linking an executable, one normally links against the dynamic linker,
so the symbol reference is satisfied.  When linking a shared library,
one normally does not link against the dynamic linker, but that's OK
because shared libraries are permitted to have undefined references.

However, you are linking with -z defs, which directs the linker to
prohibit undefined references even though it is linking a shared
library. And somehow libselinux1.so.1 is not seen as a shared library.


* src/Makefile ($(LIBSO)): remove -z,defs, from the $(LIBSO): link line. 

